# -*- coding: utf-8 -*- 
# @project : 《Atcoder》
# @Author : created by bensonrachel on 2021/9/25
# @File : 13.Grid Paths.py
def dp_solve():
    dp = [[0]*(n+1) for _ in range(n+1)]
    dp[1][1] = 1
    for i in range(1,n+1):
        for j in range(1,n+1):
            if(sq[i-1][j-1] != '*'):
                dp[i][j] = (dp[i][j]+dp[i-1][j]+dp[i][j-1])%(10 ** 9 + 7)
            else:
                dp[i][j] = 0
    return dp[n][n]

"""
填表计算从左上方的格子到右下方的格子的路径数，不能走*格
状态转移：从上方来的方法数加上从左边来的方法数等于走到某个格子的方法数，如果为*号格，则直接填0；
"""
if __name__ == '__main__':
    n = int(input())
    sq = []
    for _ in range(n):
        sq.append(input())
    ans = dp_solve()
    print(ans)
